#ifndef __STACK_H__
#define __STACK_H__

typedef struct {
	void *base;
	int top; // 可以用栈顶指针void *top
	int size;
	int capacity;
}stack_t;

extern int stack_init(stack_t **s, int size, int capacity);

extern int stack_empty(const stack_t *s); // stack_t s

extern int stack_full(const stack_t *s);

extern int stack_push(stack_t *s, const void *data);

extern int stack_pop(stack_t *s, void *data);

extern int stack_peek(stack_t *s, void *data);

extern void stack_destroy(stack_t **s);

#endif

